// 父类的作用:
// 1 构建基础类型 接收子类传递进来的自定义props数据
// 2 定义通用设置状态值的函数，更新子类的数据状态，重新渲染，并更新到dom中
// 3 定义一个通用的renderDom方法，主要渲染子类传递进来的dom字符串，并且注册子类的时间函数，返回最终的dom结构
// 总结：1 接收数据，2 修改状态 3 监听事件 4 渲染结构


class Component {
    constructor(props = {}) {
        this.props = props;
    }
    setState(state) {
        const oldEl = this.el;
        this.state = state;
        this._renderDom();
        if (this.onStateChange) this.onStateChange(oldEl, this.el);
    }
    _renderDom() {
        console.log('this', this)
        this.el = createDomFromString(this.render());
        if (this.onClick) {
            this.el.addEventListener('click', this.onClick.bind(this), false);
        }
        return this.el
    }

}